package org.iteracionII.dom;


import java.util.*;

import org.iteracionI.persis.AgenteBD;

public class Libro {
	private String mtitulo;
	private String mautor;
	private String msignatura;
	private String mISBN;
	private int mdisponibilidad;
	public Gestor_Registrar_Libro unnamed_Gestor_Registrar_;

        public Libro (){
            this.mtitulo = null;
            this.mautor = null;
            this.msignatura = null;
            this.mISBN = null;
            this.mdisponibilidad = 1;
        }
        
        public Libro(String titulo, String signatura, String ISBN){
            this.mtitulo = titulo;
            this.msignatura = signatura;
            this.mISBN = ISBN;
        }
        
        public Libro(String titulo, String autor, String signatura, String ISBN){
            this.mtitulo = titulo;
            this.mautor = autor;
            this.msignatura = signatura;
            this.mISBN = ISBN;
            this.mdisponibilidad = 1;
        }
        
        public Libro(String titulo, String autor, String signatura, String ISBN, int disponibilidad){
            this.mtitulo = titulo;
            this.mautor = autor;
            this.msignatura = signatura;
            this.mISBN = ISBN;
            this.mdisponibilidad = disponibilidad;
        }
        
        
        public int ComprobarExiste(String titulo, String autor, String signatura, String ISBN) throws Exception{
            Libro l = null;
            Vector<Object> aux = null;
            String SQL_Consulta = "SELECT * FROM Libros WHERE titulo = '"+titulo+"' AND autor = '"+autor+"' AND signatura = '"+signatura+"' AND isbn = '"+ISBN+"';";
            int tamaño;

            if (titulo.isEmpty() || autor.isEmpty() || signatura.isEmpty() || ISBN.isEmpty()) tamaño = 1;
            else{
	            AgenteBD agen = AgenteBD.getAgente();
	            Vector<Object> res = agen.selectBook(SQL_Consulta);
	            tamaño = res.size();
            }
            return tamaño;
        }

        public int getDisponibilidad(){
            return mdisponibilidad;
        }
        
        public int update() throws Exception{
            int res;
            String SQL_Consulta = "UPDATE Libros SET disponibilidad = 0 WHERE titulo = '"+this.mtitulo+"' OR signatura = '"+this.msignatura+"' OR isbn = '"+this.mISBN+"';";           
            AgenteBD agen = AgenteBD.getAgente();
            res = agen.update(SQL_Consulta);
            return res;
        }

        public int create() throws Exception {
            int res;
            String SQL_Consulta = "INSERT INTO Libros VALUES('"+this.mtitulo+"','"+this.mautor+"','"+this.msignatura+"','"+this.mISBN+"','"+this.mdisponibilidad+"');";
            AgenteBD agen = AgenteBD.getAgente();
            res = agen.insert(SQL_Consulta);
            return res;
        }
}